Il modello di esecuzione CUDA trasforma il tuo computer in un sistema eterogeneo ad alte prestazioni. Immagina un Grande Direttore (l'Host/CPU) e un Esercito di migliaia (il Device/GPU). Il Direttore gestisce logiche complesse e prende decisioni, mentre l'Esercito esegue compiti massivi e ripetitivi simultaneamente.
1. La divisione architettonica
L' Host è un CPU ottimizzato per la latenza, progettato per flussi di controllo complessi e compiti seriali. Viceversa, il Device è un GPU ottimizzato per il throughput, contenente migliaia di core semplici progettati per eseguire la stessa istruzione su set di dati enormi contemporaneamente.
2. Il ritmo di esecuzione
Un programma CUDA funziona come una serie di fasi. L'esecuzione inizia sull'Host per il "codice seriale." Quando il programma raggiunge un "Kernel parallelo," avvia un Griglia di thread sul Device. Il controllo torna all'Host una volta che il Device ha completato il suo carico di lavoro massiccio.
3. Specializzazione delle prestazioni
Il modello sfrutta i punti di forza di entrambi: il CPU gestisce le risorse di sistema e i rami complessi, mentre il GPU esegue SPMD (Single-Program, Multiple-Data) logica per elaborare elementi di dati in parallelo.